// 二项式反演
// 信封问题
// n 封信和 n 个信封，求全部装错的方案数
// 测试链接 ：https://www.luogu.com.cn/problem/P1595
// 相关帖子 ：https://www.cnblogs.com/dx123/p/17031773.html
// 相关帖子 ：https://oi-wiki.org/math/combinatorics/combination/#%E4%BA%8C%E9%A1%B9%E5%BC%8F%E5%8F%8D%E6%BC%94
// 提交以下的code，可以直接通过

#include <bits/stdc++.h>

using namespace std;

#define ll long long
ll n, s, ans, fac[25];

int main()
{
    scanf("%lld", &n);
    fac[0] = 1;
    for(int i = 1; i <= n; ++i) fac[i] = fac[i - 1] * i;
    for(int i = 0; i <= n; ++i)
    {
        s = fac[n] / fac[i];
        if(i & 1) ans -= s;
        else ans += s;
    }
    printf("%lld\n", ans);

    return 0;
}